home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Science / µSim 1.0b5 folder / source / USAC.r < prev    next >
Encoding:
Text File  |  1994-04-18  |  59.6 KB  |  2,201 lines  |  [TEXT/MMCC]

  1. /*
  2. Copyright © 1993,1994 by Fabrizio Oddone
  3. ••• ••• ••• ••• ••• ••• ••• ••• ••• •••
  4. This source code is distributed as freeware: you can copy, exchange, modify this
  5. code as you wish. You may include this code in any kind of application: freeware,
  6. shareware, or commercial, provided that full credits are given.
  7. You may not sell or distribute this code for profit.
  8. */
  9.  
  10. #define SystemSevenOrLater 1
  11.  
  12. #include "SysTypes.r"
  13. #include "Types.r"
  14. #include "StdAlert.r"
  15.  
  16. #define NumTextLines        3
  17.  
  18. resource 'ALRT' (128, purgeable, preload) {
  19.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  20.     128,
  21.     {    /* array: 4 elements */
  22.         /* [1] */
  23.         Cancel, visible, silent,
  24.         /* [2] */
  25.         Cancel, visible, silent,
  26.         /* [3] */
  27.         Cancel, visible, silent,
  28.         /* [4] */
  29.         Cancel, visible, silent
  30.     },
  31.     alertPositionMainScreen
  32. };
  33.  
  34. resource 'DITL' (128, purgeable, preload) {
  35.     {    /* array DITLarray: 3 elements */
  36.         /* [1] */
  37.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  38.         Button {
  39.             enabled,
  40.             "Reset"
  41.         },
  42.         /* [2] */
  43.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  44.         Button {
  45.             enabled,
  46.             "Cancel"
  47.         },
  48.         /* [3] */
  49.         {TextTop, TextLeft, TextBottom, TextRight},
  50.         StaticText {
  51.             disabled,
  52.             "Do you really want to reset the simulator main memory to its"
  53.             " initial state? This is NOT undoable."
  54.         }
  55.     }
  56. };
  57.  
  58. #define NumTextLines        4
  59. #define LongestButtonName    64    // Overwrite
  60.  
  61. resource 'ALRT' (129, purgeable) {
  62.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  63.     129,
  64.     {    /* array: 4 elements */
  65.         /* [1] */
  66.         Cancel, visible, sound1,
  67.         /* [2] */
  68.         Cancel, visible, sound1,
  69.         /* [3] */
  70.         Cancel, visible, sound1,
  71.         /* [4] */
  72.         Cancel, visible, sound1
  73.     },
  74.     alertPositionMainScreen
  75. };
  76.  
  77. resource 'DITL' (129, purgeable) {
  78.     {    /* array DITLarray: 3 elements */
  79.         /* [1] */
  80.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  81.         Button {
  82.             enabled,
  83.             "Overwrite"
  84.         },
  85.         /* [2] */
  86.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  87.         Button {
  88.             enabled,
  89.             "Cancel"
  90.         },
  91.         /* [3] */
  92.         {TextTop, TextLeft, TextBottom, TextRight},
  93.         StaticText {
  94.             disabled,
  95.             "A safe save is not possible, because the available free spac"
  96.             "e is less than the size of this document. Shall I overwrite "
  97.             "the original document?"
  98.         }
  99.     }
  100. };
  101.  
  102. #define LongestButtonName    LongestBtnName    // restore
  103.  
  104. #define NumTextLines        2
  105.  
  106. resource 'ALRT' (130, purgeable) {
  107.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  108.     130,
  109.     {    /* array: 4 elements */
  110.         /* [1] */
  111.         OK, visible, sound2,
  112.         /* [2] */
  113.         OK, visible, sound2,
  114.         /* [3] */
  115.         OK, visible, sound2,
  116.         /* [4] */
  117.         OK, visible, sound2
  118.     },
  119.     alertPositionMainScreen
  120. };
  121.  
  122. resource 'DITL' (130, purgeable) {
  123.     {    /* array DITLarray: 2 elements */
  124.         /* [1] */
  125.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  126.         Button {
  127.             enabled,
  128.             "OK"
  129.         },
  130.         /* [2] */
  131.         {TextTop, TextLeft, TextBottom, TextRight},
  132.         StaticText {
  133.             disabled,
  134.             "A general error ^0 has occurred; I hope you have a list of e"
  135.             "rror codes."
  136.         }
  137.     }
  138. };
  139.  
  140. #define NumTextLines        3
  141.  
  142. resource 'ALRT' (131, purgeable) {
  143.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  144.     131,
  145.     {    /* array: 4 elements */
  146.         /* [1] */
  147.         OK, visible, sound1,
  148.         /* [2] */
  149.         OK, visible, sound1,
  150.         /* [3] */
  151.         OK, visible, sound1,
  152.         /* [4] */
  153.         OK, visible, sound1
  154.     },
  155.     alertPositionMainScreen
  156. };
  157.  
  158. resource 'DITL' (131, purgeable) {
  159.     {    /* array DITLarray: 2 elements */
  160.         /* [1] */
  161.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  162.         Button {
  163.             enabled,
  164.             "Quit"
  165.         },
  166.         /* [2] */
  167.         {TextTop, TextLeft, TextBottom, TextRight},
  168.         StaticText {
  169.             disabled,
  170.             "Sorry, this program needs features currently available only "
  171.             "under System 7.0 or later."
  172.         }
  173.     }
  174. };
  175.  
  176. #define NumTextLines        4
  177.  
  178. resource 'ALRT' (132, purgeable) {
  179.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  180.     132,
  181.     {    /* array: 4 elements */
  182.         /* [1] */
  183.         OK, visible, sound2,
  184.         /* [2] */
  185.         OK, visible, sound2,
  186.         /* [3] */
  187.         OK, visible, sound2,
  188.         /* [4] */
  189.         OK, visible, sound2
  190.     },
  191.     alertPositionMainScreen
  192. };
  193.  
  194. resource 'DITL' (132, purgeable) {
  195.     {    /* array DITLarray: 2 elements */
  196.         /* [1] */
  197.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  198.         Button {
  199.             enabled,
  200.             "OK"
  201.         },
  202.         /* [2] */
  203.         {TextTop, TextLeft, TextBottom, TextRight},
  204.         StaticText {
  205.             disabled,
  206.             "Sorry, it is not possible to save onto this disk without ove"
  207.             "rwriting the original file (no more free space available). T"
  208.             "o be safe, save onto another disk."
  209.         }
  210.     }
  211. };
  212.  
  213. #define NumTextLines        3
  214.  
  215. resource 'ALRT' (133, purgeable) {
  216.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  217.     133,
  218.     {    /* array: 4 elements */
  219.         /* [1] */
  220.         OK, visible, sound2,
  221.         /* [2] */
  222.         OK, visible, sound2,
  223.         /* [3] */
  224.         OK, visible, sound2,
  225.         /* [4] */
  226.         OK, visible, sound2
  227.     },
  228.     alertPositionMainScreen
  229. };
  230.  
  231. resource 'DITL' (133, purgeable) {
  232.     {    /* array DITLarray: 2 elements */
  233.         /* [1] */
  234.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  235.         Button {
  236.             enabled,
  237.             "OK"
  238.         },
  239.         /* [2] */
  240.         {TextTop, TextLeft, TextBottom, TextRight},
  241.         StaticText {
  242.             disabled,
  243.             "An error ^0 has occurred while processing an Apple Event; I "
  244.             "hope you have a list of error codes."
  245.         }
  246.     }
  247. };
  248.  
  249. #define NumTextLines        2
  250.  
  251. resource 'ALRT' (135, purgeable, preload) {
  252.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  253.     135,
  254.     {    /* array: 4 elements */
  255.         /* [1] */
  256.         OK, visible, sound3,
  257.         /* [2] */
  258.         OK, visible, sound3,
  259.         /* [3] */
  260.         OK, visible, sound3,
  261.         /* [4] */
  262.         OK, visible, sound3
  263.     },
  264.     alertPositionMainScreen
  265. };
  266.  
  267. resource 'DITL' (135, purgeable, preload) {
  268.     {    /* array DITLarray: 2 elements */
  269.         /* [1] */
  270.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  271.         Button {
  272.             enabled,
  273.             "OK"
  274.         },
  275.         /* [2] */
  276.         {TextTop, TextLeft, TextBottom, TextRight},
  277.         StaticText {
  278.             disabled,
  279.             "A stack underflow error occurred (in the simulated computer,"
  280.             " fortunately)."
  281.         }
  282.     }
  283. };
  284.  
  285. #define NumTextLines        3
  286.  
  287. resource 'ALRT' (136, purgeable, preload) {
  288.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  289.     136,
  290.     {    /* array: 4 elements */
  291.         /* [1] */
  292.         OK, visible, sound3,
  293.         /* [2] */
  294.         OK, visible, sound3,
  295.         /* [3] */
  296.         OK, visible, sound3,
  297.         /* [4] */
  298.         OK, visible, sound3
  299.     },
  300.     alertPositionMainScreen
  301. };
  302.  
  303. resource 'DITL' (136, purgeable, preload) {
  304.     {    /* array DITLarray: 2 elements */
  305.         /* [1] */
  306.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  307.         Button {
  308.             enabled,
  309.             "OK"
  310.         },
  311.         /* [2] */
  312.         {TextTop, TextLeft, TextBottom, TextRight},
  313.         StaticText {
  314.             disabled,
  315.             "Timeout error. The simulated processor is abnormally busy, p"
  316.             "ossibly because of an infinite loop in the microprogram."
  317.         }
  318.     }
  319. };
  320.  
  321. #define NumTextLines        1
  322.  
  323. resource 'ALRT' (137, purgeable, preload) {
  324.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  325.     137,
  326.     {    /* array: 4 elements */
  327.         /* [1] */
  328.         OK, visible, sound2,
  329.         /* [2] */
  330.         OK, visible, sound2,
  331.         /* [3] */
  332.         OK, visible, sound2,
  333.         /* [4] */
  334.         OK, visible, sound2
  335.     },
  336.     alertPositionMainScreen
  337. };
  338.  
  339. resource 'DITL' (137, purgeable, preload) {
  340.     {    /* array DITLarray: 2 elements */
  341.         /* [1] */
  342.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  343.         Button {
  344.             enabled,
  345.             "OK"
  346.         },
  347.         /* [2] */
  348.         {TextTop, TextLeft, TextBottom, TextRight},
  349.         StaticText {
  350.             disabled,
  351.             "The simulated program has quitted."
  352.         }
  353.     }
  354. };
  355.  
  356. #define NumTextLines        4
  357.  
  358. resource 'ALRT' (138, purgeable) {
  359.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  360.     138,
  361.     {    /* array: 4 elements */
  362.         /* [1] */
  363.         OK, visible, sound1,
  364.         /* [2] */
  365.         OK, visible, sound1,
  366.         /* [3] */
  367.         OK, visible, sound1,
  368.         /* [4] */
  369.         OK, visible, sound1
  370.     },
  371.     alertPositionMainScreen
  372. };
  373.  
  374. resource 'DITL' (138, purgeable) {
  375.     {    /* array DITLarray: 2 elements */
  376.         /* [1] */
  377.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  378.         Button {
  379.             enabled,
  380.             "OK"
  381.         },
  382.         /* [2] */
  383.         {TextTop, TextLeft, TextBottom, TextRight},
  384.         StaticText {
  385.             disabled,
  386.             "Sorry, this volume does not support “safe save”. Please save"
  387.             " onto another volume, or save the document with another name"
  388.             "."
  389.         }
  390.     }
  391. };
  392.  
  393. #define NumTextLines        4
  394.  
  395. resource 'ALRT' (139, purgeable, preload) {
  396.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  397.     139,
  398.     {    /* array: 4 elements */
  399.         /* [1] */
  400.         Cancel, visible, silent,
  401.         /* [2] */
  402.         Cancel, visible, silent,
  403.         /* [3] */
  404.         Cancel, visible, silent,
  405.         /* [4] */
  406.         Cancel, visible, silent
  407.     },
  408.     alertPositionMainScreen
  409. };
  410.  
  411. resource 'DITL' (139, purgeable, preload) {
  412.     {    /* array DITLarray: 3 elements */
  413.         /* [1] */
  414.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  415.         Button {
  416.             enabled,
  417.             "Reset"
  418.         },
  419.         /* [2] */
  420.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  421.         Button {
  422.             enabled,
  423.             "Cancel"
  424.         },
  425.         /* [3] */
  426.         {TextTop, TextLeft, TextBottom, TextRight},
  427.         StaticText {
  428.             disabled,
  429.             "Do you really want to reset the Program Counter, the Stack "
  430.             "Pointer and the Micro Program Counter to their initial values? "
  431.             "This is NOT undoable."
  432.         }
  433.     }
  434. };
  435.  
  436. #define NumTextLines        2
  437.  
  438. resource 'ALRT' (140, purgeable, preload) {
  439.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  440.     140,
  441.     {    /* array: 4 elements */
  442.         /* [1] */
  443.         OK, visible, sound3,
  444.         /* [2] */
  445.         OK, visible, sound3,
  446.         /* [3] */
  447.         OK, visible, sound3,
  448.         /* [4] */
  449.         OK, visible, sound3
  450.     },
  451.     alertPositionMainScreen
  452. };
  453.  
  454. resource 'DITL' (140, purgeable, preload) {
  455.     {    /* array DITLarray: 2 elements */
  456.         /* [1] */
  457.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  458.         Button {
  459.             enabled,
  460.             "OK"
  461.         },
  462.         /* [2] */
  463.         {TextTop, TextLeft, TextBottom, TextRight},
  464.         StaticText {
  465.             disabled,
  466.             "A stack overflow error occurred (in the simulated computer, "
  467.             "fortunately)."
  468.         }
  469.     }
  470. };
  471.  
  472. #define NumTextLines        3
  473.  
  474. resource 'ALRT' (141, purgeable) {
  475.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  476.     141,
  477.     {    /* array: 4 elements */
  478.         /* [1] */
  479.         OK, visible, sound3,
  480.         /* [2] */
  481.         OK, visible, sound3,
  482.         /* [3] */
  483.         OK, visible, sound3,
  484.         /* [4] */
  485.         OK, visible, sound3
  486.     },
  487.     alertPositionMainScreen
  488. };
  489.  
  490. resource 'DITL' (141, purgeable) {
  491.     {    /* array DITLarray: 2 elements */
  492.         /* [1] */
  493.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  494.         Button {
  495.             enabled,
  496.             "OK"
  497.         },
  498.         /* [2] */
  499.         {TextTop, TextLeft, TextBottom, TextRight},
  500.         StaticText {
  501.             disabled,
  502.             "Sorry, memory is full. You will find some recovered document"
  503.             "s in the Trash after restarting your Mac."
  504.         }
  505.     }
  506. };
  507.  
  508. #define NumTextLines        3
  509.  
  510. resource 'ALRT' (142, purgeable) {
  511.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  512.     142,
  513.     {    /* array: 4 elements */
  514.         /* [1] */
  515.         Cancel, visible, silent,
  516.         /* [2] */
  517.         Cancel, visible, silent,
  518.         /* [3] */
  519.         Cancel, visible, silent,
  520.         /* [4] */
  521.         Cancel, visible, silent
  522.     },
  523.     alertPositionMainScreen
  524. };
  525.  
  526. resource 'DITL' (142, purgeable) {
  527.     {    /* array DITLarray: 3 elements */
  528.         /* [1] */
  529.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  530.         Button {
  531.             enabled,
  532.             "Revert"
  533.         },
  534.         /* [2] */
  535.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  536.         Button {
  537.             enabled,
  538.             "Cancel"
  539.         },
  540.         /* [3] */
  541.         {TextTop, TextLeft, TextBottom, TextRight},
  542.         StaticText {
  543.             disabled,
  544.             "Do you really want to revert to the last saved version of th"
  545.             "is document? This is NOT undoable."
  546.         }
  547.     }
  548. };
  549.  
  550. #define NumTextLines        3
  551.  
  552. resource 'ALRT' (143, purgeable) {
  553.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  554.     143,
  555.     {    /* array: 4 elements */
  556.         /* [1] */
  557.         Cancel, visible, silent,
  558.         /* [2] */
  559.         Cancel, visible, silent,
  560.         /* [3] */
  561.         Cancel, visible, silent,
  562.         /* [4] */
  563.         Cancel, visible, silent
  564.     },
  565.     alertPositionMainScreen
  566. };
  567.  
  568. resource 'DITL' (143, purgeable) {
  569.     {    /* array DITLarray: 3 elements */
  570.         /* [1] */
  571.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  572.         Button {
  573.             enabled,
  574.             "Quit"
  575.         },
  576.         /* [2] */
  577.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  578.         Button {
  579.             enabled,
  580.             "Cancel"
  581.         },
  582.         /* [3] */
  583.         {TextTop, TextLeft, TextBottom, TextRight},
  584.         StaticText {
  585.             disabled,
  586.             "A computation is running on the simulated processor. Do you "
  587.             "really want to quit now?"
  588.         }
  589.     }
  590. };
  591.  
  592. #define NumTextLines        3
  593.  
  594. resource 'ALRT' (200, purgeable) {
  595.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  596.     200,
  597.     {    /* array: 4 elements */
  598.         /* [1] */
  599.         OK, visible, silent,
  600.         /* [2] */
  601.         OK, visible, silent,
  602.         /* [3] */
  603.         OK, visible, silent,
  604.         /* [4] */
  605.         OK, visible, silent
  606.     },
  607.     alertPositionMainScreen
  608. };
  609.  
  610. resource 'DITL' (200, purgeable) {
  611.     {    /* array DITLarray: 4 elements */
  612.         /* [1] */
  613.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  614.         Button {
  615.             enabled,
  616.             "Save"
  617.         },
  618.         /* [2] */
  619.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  620.         Button {
  621.             enabled,
  622.             "Cancel"
  623.         },
  624.         /* [3] */
  625.         {ButtonTop, DontSaveButtonLeft, ButtonBottom, DontSaveButtonRight},
  626.         Button {
  627.             enabled,
  628.             "Don’t Save"
  629.         },
  630.         /* [4] */
  631.         {TextTop, TextLeft, TextBottom, TextRight},
  632.         StaticText {
  633.             disabled,
  634.             "Save changes to the microprogram document “^0”?"
  635.         }
  636.     }
  637. };
  638.  
  639. #define NumTextLines        1
  640.  
  641. resource 'ALRT' (512, purgeable) {
  642.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  643.     512,
  644.     {    /* array: 4 elements */
  645.         /* [1] */
  646.         OK, visible, sound3,
  647.         /* [2] */
  648.         OK, visible, sound3,
  649.         /* [3] */
  650.         OK, visible, sound3,
  651.         /* [4] */
  652.         OK, visible, sound3
  653.     },
  654.     alertPositionMainScreen
  655. };
  656.  
  657. resource 'DITL' (512, purgeable) {
  658.     {    /* array DITLarray: 2 elements */
  659.         /* [1] */
  660.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  661.         Button {
  662.             enabled,
  663.             "OK"
  664.         },
  665.         /* [2] */
  666.         {TextTop, TextLeft, TextBottom, TextRight},
  667.         StaticText {
  668.             disabled,
  669.             "Invalid opcode at line ^0."
  670.         }
  671.     }
  672. };
  673.  
  674. #define NumTextLines        2
  675.  
  676. resource 'ALRT' (513, purgeable) {
  677.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  678.     513,
  679.     {    /* array: 4 elements */
  680.         /* [1] */
  681.         OK, visible, sound3,
  682.         /* [2] */
  683.         OK, visible, sound3,
  684.         /* [3] */
  685.         OK, visible, sound3,
  686.         /* [4] */
  687.         OK, visible, sound3
  688.     },
  689.     alertPositionMainScreen
  690. };
  691.  
  692. resource 'DITL' (513, purgeable) {
  693.     {    /* array DITLarray: 2 elements */
  694.         /* [1] */
  695.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  696.         Button {
  697.             enabled,
  698.             "OK"
  699.         },
  700.         /* [2] */
  701.         {TextTop, TextLeft, TextBottom, TextRight},
  702.         StaticText {
  703.             disabled,
  704.             "Opcode not present in the opcode table at line ^0."
  705.         }
  706.     }
  707. };
  708.  
  709. #define NumTextLines        4
  710.  
  711. resource 'ALRT' (514, purgeable) {
  712.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  713.     514,
  714.     {    /* array: 4 elements */
  715.         /* [1] */
  716.         OK, visible, sound3,
  717.         /* [2] */
  718.         OK, visible, sound3,
  719.         /* [3] */
  720.         OK, visible, sound3,
  721.         /* [4] */
  722.         OK, visible, sound3
  723.     },
  724.     alertPositionMainScreen
  725. };
  726.  
  727. resource 'DITL' (514, purgeable) {
  728.     {    /* array DITLarray: 2 elements */
  729.         /* [1] */
  730.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  731.         Button {
  732.             enabled,
  733.             "OK"
  734.         },
  735.         /* [2] */
  736.         {TextTop, TextLeft, TextBottom, TextRight},
  737.         StaticText {
  738.             disabled,
  739.             "You would assemble this program outside of the simulator mem"
  740.             "ory. Set the value in the Assembler Preferences dialog to a "
  741.             "more reasonable one."
  742.         }
  743.     }
  744. };
  745.  
  746. #define NumTextLines        2
  747.  
  748. resource 'ALRT' (515, purgeable) {
  749.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  750.     515,
  751.     {    /* array: 4 elements */
  752.         /* [1] */
  753.         OK, visible, sound3,
  754.         /* [2] */
  755.         OK, visible, sound3,
  756.         /* [3] */
  757.         OK, visible, sound3,
  758.         /* [4] */
  759.         OK, visible, sound3
  760.     },
  761.     alertPositionMainScreen
  762. };
  763.  
  764. resource 'DITL' (515, purgeable) {
  765.     {    /* array DITLarray: 2 elements */
  766.         /* [1] */
  767.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  768.         Button {
  769.             enabled,
  770.             "OK"
  771.         },
  772.         /* [2] */
  773.         {TextTop, TextLeft, TextBottom, TextRight},
  774.         StaticText {
  775.             disabled,
  776.             "Symbol not defined at line ^0."
  777.         }
  778.     }
  779. };
  780.  
  781. #define NumTextLines        2
  782.  
  783. resource 'ALRT' (516, purgeable) {
  784.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  785.     516,
  786.     {    /* array: 4 elements */
  787.         /* [1] */
  788.         OK, visible, sound3,
  789.         /* [2] */
  790.         OK, visible, sound3,
  791.         /* [3] */
  792.         OK, visible, sound3,
  793.         /* [4] */
  794.         OK, visible, sound3
  795.     },
  796.     alertPositionMainScreen
  797. };
  798.  
  799. resource 'DITL' (516, purgeable) {
  800.     {    /* array DITLarray: 2 elements */
  801.         /* [1] */
  802.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  803.         Button {
  804.             enabled,
  805.             "OK"
  806.         },
  807.         /* [2] */
  808.         {TextTop, TextLeft, TextBottom, TextRight},
  809.         StaticText {
  810.             disabled,
  811.             "Operand not valid at line ^0. One or two letters are allowed between ' "
  812.             "'."
  813.         }
  814.     }
  815. };
  816.  
  817. resource 'DLOG' (256, purgeable, preload) {
  818.     {25, 10, 325, 500},
  819.     plainDBox,
  820.     invisible,
  821.     noGoAway,
  822.     0x0,
  823.     256,
  824.     "",
  825.     centerMainScreen
  826. };
  827.  
  828. resource 'DITL' (256, purgeable, preload) {
  829.     {    /* array DITLarray: 6 elements */
  830.         /* [1] */
  831.         {11, 5, 241, 224},
  832.         Picture {
  833.             disabled,
  834.             256
  835.         },
  836.         /* [2] */
  837.         {16, 230, 47, 373},
  838.         StaticText {
  839.             disabled,
  840.             "Version ^0 by Fabrizio Oddone."
  841.         },
  842.         /* [3] */
  843.         {55, 230, 136, 488},
  844.         StaticText {
  845.             disabled,
  846.             "Freeware! If you really like this application "
  847.             "or find it useful, send a postcard. "
  848.             "US dollars are welcome as always. "
  849.             "My full address is:"
  850.         },
  851.         /* [4] */
  852.         {145, 230, 241, 488},
  853.         StaticText {
  854.             disabled,
  855.             "Fabrizio Oddone\nC.so Monte Cucco 59/F\n10141 Torino - Italy\n\n"
  856.             "e-mail: simula3@di.unito.it"
  857.         },
  858.         /* [5] */
  859.         {248, 8, 295, 483},
  860.         StaticText {
  861.             disabled,
  862.             "Many thanks to Alessandro Levi Montalcini and Alberto Ricci "
  863.             "for testing and for giving lots of suggestions. (Alessandro "
  864.             "even borrowed me Inside Mac VI when it could not be found in"
  865.             " local bookstores)."
  866.         },
  867.         /* [6] */
  868.         {15, 440, 47, 472},
  869.         Icon {
  870.             disabled,
  871.             129
  872.         }
  873.     }
  874. };
  875.  
  876. resource 'DLOG' (261, purgeable, preload) {
  877.     {100, 118, 220, 390},
  878.     dBoxProc,
  879.     invisible,
  880.     noGoAway,
  881.     0x0,
  882.     261,
  883.     "",
  884.     centerParentWindowScreen
  885. };
  886.  
  887. resource 'DITL' (261, purgeable, preload) {
  888.     {    /* array DITLarray: 6 elements */
  889.         /* [1] */
  890.         {90, 203, 110, 262},
  891.         Button {
  892.             enabled,
  893.             "OK"
  894.         },
  895.         /* [2] */
  896.         {90, 131, 110, 190},
  897.         Button {
  898.             enabled,
  899.             "Cancel"
  900.         },
  901.         /* [3] */
  902.         {60, 71, 76, 202},
  903.         EditText {
  904.             enabled,
  905.             ""
  906.         },
  907.         /* [4] */
  908.         {29, 53, 49, 220},
  909.         Control {
  910.             enabled,
  911.             128
  912.         },
  913.         /* [5] */
  914.         {5, 7, 21, 265},
  915.         StaticText {
  916.             disabled,
  917.             "Value ^0^1:"
  918.         },
  919.         /* [6] */
  920.         {0, 0, 0, 0},
  921.         HelpItem {
  922.             enabled,
  923.             HMScanhdlg {
  924.                 256
  925.             }
  926.         }
  927.     }
  928. };
  929.  
  930. resource 'DLOG' (134, purgeable) {
  931.     {100, 100, 230, 430},
  932.     dBoxProc,
  933.     invisible,
  934.     noGoAway,
  935.     0x0,
  936.     134,
  937.     "",
  938.     centerMainScreen
  939. };
  940.  
  941. resource 'DITL' (134, purgeable) {
  942.     {    /* array DITLarray: 7 elements */
  943.         /* [1] */
  944.         {100, 254, 120, 313},
  945.         Button {
  946.             enabled,
  947.             "OK"
  948.         },
  949.         /* [2] */
  950.         {100, 182, 120, 241},
  951.         Button {
  952.             enabled,
  953.             "Cancel"
  954.         },
  955.         /* [3] */
  956.         {58, 263, 74, 310},
  957.         EditText {
  958.             enabled,
  959.             ""
  960.         },
  961.         /* [4] */
  962.         {15, 83, 31, 247},
  963.         StaticText {
  964.             disabled,
  965.             "Assembler Preferences:"
  966.         },
  967.         /* [5] */
  968.         {58, 18, 75, 239},
  969.         StaticText {
  970.             disabled,
  971.             "Assemble to memory word (hex):"
  972.         },
  973.         /* [6] */
  974.         {10, 20, 42, 52},
  975.         Icon {
  976.             disabled,
  977.             128
  978.         },
  979.         /* [7] */
  980.         {0, 0, 0, 0},
  981.         HelpItem {
  982.             enabled,
  983.             HMScanhdlg {
  984.                 134
  985.             }
  986.         }
  987.     }
  988. };
  989.  
  990.  
  991. data 'WIND' (256, "Microprogram", purgeable, preload) {
  992.     $"0027 0010 013B 01FE 0004 0000 0101 0000 0100 0855 6E74 6974"                /* .'...;.............Untit */
  993.     $"6C65 64"                                                                    /* led */
  994. };
  995.  
  996. data 'WIND' (261, "Disasm", purgeable, preload) {
  997.     $"002A 0008 014E 00BE 0000 0000 0100 0000 0000 0C44 6973 6173"                /* .*...N.æ...........Disas */
  998.     $"7365 6D62 6C65 72"                                                          /* sembler */
  999. };
  1000.  
  1001. data 'WIND' (257, "Animation", purgeable, preload) {
  1002.     $"004B 0000 0156 017F 0004 0000 0100 0000 0000 0941 6E69 6D61"                /* .K...V............ΔAnima */
  1003.     $"7469 6F6E"                                                                  /* tion */
  1004. };
  1005.  
  1006. data 'WIND' (258, "I/O", purgeable, preload) {
  1007.     $"0117 0000 0156 017D 0008 0000 0100 0000 0000 0C49 6E70 7574"                /* .....V.}...........Input */
  1008.     $"2F4F 7574 7075 74"                                                          /* /Output */
  1009. };
  1010.  
  1011. data 'WIND' (259, "Registers", purgeable, preload) {
  1012.     $"0024 0181 00D8 01FE 0004 0000 0100 0000 0000 0952 6567 6973"                /* .$.Å.ÿ............ΔRegis */
  1013.     $"7465 7273"                                                                  /* ters */
  1014. };
  1015.  
  1016. data 'WIND' (260, "Dump", purgeable, preload) {
  1017.     $"0032 000A 00A4 003C 0000 0000 0100 0000 0000 0444 756D 70"                  /* .2...§.<...........Dump */
  1018. };
  1019.  
  1020. resource 'WIND' (128, purgeable, preload) {
  1021.     {40, 40, 56, 69},
  1022.     altDBoxProc,
  1023.     invisible,
  1024.     noGoAway,
  1025.     0x0,
  1026.     "",
  1027.     staggerParentWindow
  1028. };
  1029.  
  1030. resource 'vers' (1, purgeable) {
  1031.     0x1,
  1032.     0x0,
  1033.     beta,
  1034.     5,
  1035.     verUS,
  1036.     "1.0b5",
  1037.     "1.0b5 ©1993-1994 Fabrizio Oddone"
  1038. };
  1039.  
  1040. resource 'STR#' (256, purgeable, preload) {
  1041.     {    /* array StringArray: 10 elements */
  1042.         /* [1] */
  1043.         "A Latch",
  1044.         /* [2] */
  1045.         "B Latch",
  1046.         /* [3] */
  1047.         "Memory Address Register",
  1048.         /* [4] */
  1049.         "Memory Buffer Register",
  1050.         /* [5] */
  1051.         "A Multiplexer",
  1052.         /* [6] */
  1053.         "Shifter",
  1054.         /* [7] */
  1055.         "Incrementer",
  1056.         /* [8] */
  1057.         "M Multiplexer",
  1058.         /* [9] */
  1059.         "Micro Program Counter",
  1060.         /* [10] */
  1061.         "Arithmetic Logical Unit"
  1062.     }
  1063. };
  1064.  
  1065. resource 'STR#' (257, purgeable, preload) {
  1066.     {    /* array StringArray: 13 elements */
  1067.         /* [1] */
  1068.         "PC",
  1069.         /* [2] */
  1070.         "AC",
  1071.         /* [3] */
  1072.         "SP",
  1073.         /* [4] */
  1074.         "BP",
  1075.         /* [5] */
  1076.         "IR",
  1077.         /* [6] */
  1078.         "A",
  1079.         /* [7] */
  1080.         "B",
  1081.         /* [8] */
  1082.         "C",
  1083.         /* [9] */
  1084.         "D",
  1085.         /* [10] */
  1086.         "E",
  1087.         /* [11] */
  1088.         "X12",
  1089.         /* [12] */
  1090.         "X11",
  1091.         /* [13] */
  1092.         "Lo8"
  1093.     }
  1094. };
  1095.  
  1096. resource 'STR#' (258, purgeable, preload) {
  1097.     {    /* array StringArray: 13 elements */
  1098.         /* [1] */
  1099.         "Program Counter",
  1100.         /* [2] */
  1101.         "Accumulator",
  1102.         /* [3] */
  1103.         "Stack Pointer",
  1104.         /* [4] */
  1105.         "Base Pointer",
  1106.         /* [5] */
  1107.         "Instruction Register",
  1108.         /* [6] */
  1109.         "Register A",
  1110.         /* [7] */
  1111.         "Register B",
  1112.         /* [8] */
  1113.         "Register C",
  1114.         /* [9] */
  1115.         "Register D",
  1116.         /* [10] */
  1117.         "Register E",
  1118.         /* [11] */
  1119.         "Register X12",
  1120.         /* [12] */
  1121.         "Register X11",
  1122.         /* [13] */
  1123.         "Register Lo8"
  1124.     }
  1125. };
  1126.  
  1127. resource 'STR#' (259, purgeable, preload) {
  1128.     {    /* array StringArray: 2 elements */
  1129.         /* [1] */
  1130.         "ALU input from:",
  1131.         /* [2] */
  1132.         "to"
  1133.     }
  1134. };
  1135.  
  1136. resource 'STR#' (128, purgeable) {
  1137.     {    /* array StringArray: 2 elements */
  1138.         /* [1] */
  1139.         "closing",
  1140.         /* [2] */
  1141.         "quitting"
  1142.     }
  1143. };
  1144.  
  1145. resource 'STR#' (130) {
  1146.     {    /* array StringArray: 2 elements */
  1147.         /* [1] */
  1148.         "in the ",
  1149.         /* [2] */
  1150.         "at memory word $"
  1151.     }
  1152. };
  1153.  
  1154. resource 'STR ' (128, purgeable) {
  1155.     "0123456789-"
  1156. };
  1157.  
  1158. resource 'STR ' (129, purgeable) {
  1159.     "0123456789ABCDEF"
  1160. };
  1161.  
  1162. resource 'STR ' (130, purgeable) {
  1163.     "01234567"
  1164. };
  1165.  
  1166. resource 'STR ' (131, purgeable) {
  1167.     "01"
  1168. };
  1169.  
  1170. resource 'STR ' (132, purgeable) {
  1171.     "    "
  1172. };
  1173.  
  1174. resource 'STR ' (133, purgeable) {
  1175.     "Save memory file as:"
  1176. };
  1177.  
  1178. resource 'STR ' (134, purgeable) {
  1179.     "Main memory"
  1180. };
  1181.  
  1182. resource 'STR ' (-16396, purgeable) {
  1183.     "µArchitecture Simulator"
  1184. };
  1185.  
  1186. resource 'STR ' (-16397, purgeable) {
  1187.     "This document describes user preferences for the application"
  1188.     " µArchitecture Simulator. You cannot open or print this docu"
  1189.     "ment. To be effective, this document must not be renamed and"
  1190.     " must be stored in the Preferences folder in the System Fold"
  1191.     "er."
  1192. };
  1193.  
  1194. resource 'STR ' (135, purgeable) {
  1195.     "Save control store file as:"
  1196. };
  1197.  
  1198. resource 'STR ' (136, purgeable) {
  1199.     "Control Store"
  1200. };
  1201.  
  1202. resource 'STR ' (137, purgeable) {
  1203.     "untitled"
  1204. };
  1205.  
  1206. resource 'STR ' (139, purgeable) {
  1207.     "Save processor state file as:"
  1208. };
  1209.  
  1210. resource 'STR ' (140, purgeable) {
  1211.     "Processor state"
  1212. };
  1213.  
  1214. resource 'CNTL' (134, purgeable, preload) {
  1215.     {90, 256, 105, 436},
  1216.     0,
  1217.     visible,
  1218.     1,
  1219.     0,
  1220.     checkBoxProc,
  1221.     0,
  1222.     "Memory Buffer Register"
  1223. };
  1224.  
  1225. resource 'CNTL' (133, purgeable, preload) {
  1226.     {72, 256, 87, 444},
  1227.     0,
  1228.     visible,
  1229.     1,
  1230.     0,
  1231.     checkBoxProc,
  1232.     0,
  1233.     "Memory Address Register"
  1234. };
  1235.  
  1236. resource 'CNTL' (141, purgeable, preload) {
  1237.     {227, 256, 242, 460},
  1238.     0,
  1239.     visible,
  1240.     1,
  1241.     0,
  1242.     checkBoxProc,
  1243.     0,
  1244.     "Activate hardware decoding"
  1245. };
  1246.  
  1247. resource 'CNTL' (139, purgeable, preload) {
  1248.     {207, 374, 222, 433},
  1249.     0,
  1250.     visible,
  1251.     1,
  1252.     0,
  1253.     radioButProc,
  1254.     0,
  1255.     "A Bus"
  1256. };
  1257.  
  1258. resource 'CNTL' (140, purgeable, preload) {
  1259.     {207, 438, 222, 485},
  1260.     0,
  1261.     visible,
  1262.     1,
  1263.     0,
  1264.     radioButProc,
  1265.     0,
  1266.     "MBR"
  1267. };
  1268.  
  1269. resource 'CNTL' (136, purgeable, preload) {
  1270.     {133, 288, 153, 486},
  1271.     0,
  1272.     visible,
  1273.     53,
  1274.     130,
  1275.     1009,
  1276.     0,
  1277.     "Shifter"
  1278. };
  1279.  
  1280. resource 'CNTL' (137, purgeable, preload) {
  1281.     {157, 289, 177, 426},
  1282.     0,
  1283.     visible,
  1284.     52,
  1285.     131,
  1286.     1009,
  1287.     0,
  1288.     "Branch"
  1289. };
  1290.  
  1291. resource 'CNTL' (138, purgeable, preload) {
  1292.     {181, 311, 201, 486},
  1293.     0,
  1294.     visible,
  1295.     30,
  1296.     132,
  1297.     1009,
  1298.     0,
  1299.     "ALU"
  1300. };
  1301.  
  1302. resource 'CNTL' (130, purgeable, preload) {
  1303.     {4, 256, 24, 398},
  1304.     0,
  1305.     visible,
  1306.     42,
  1307.     133,
  1308.     1009,
  1309.     0,
  1310.     "A bus"
  1311. };
  1312.  
  1313. resource 'CNTL' (131, purgeable, preload) {
  1314.     {26, 256, 46, 398},
  1315.     0,
  1316.     visible,
  1317.     42,
  1318.     133,
  1319.     1009,
  1320.     0,
  1321.     "B bus"
  1322. };
  1323.  
  1324. resource 'CNTL' (132, purgeable, preload) {
  1325.     {48, 256, 68, 398},
  1326.     0,
  1327.     visible,
  1328.     42,
  1329.     134,
  1330.     1009,
  1331.     0,
  1332.     "C bus"
  1333. };
  1334.  
  1335. resource 'CNTL' (135, purgeable, preload) {
  1336.     {109, 256, 129, 486},
  1337.     0,
  1338.     visible,
  1339.     85,
  1340.     135,
  1341.     1009,
  1342.     0,
  1343.     "Bus request"
  1344. };
  1345.  
  1346. resource 'CNTL' (128, purgeable, preload) {
  1347.     {29, 53, 49, 220},
  1348.     0,
  1349.     visible,
  1350.     42,
  1351.     128,
  1352.     1008,
  1353.     0,
  1354.     "Base:"
  1355. };
  1356.  
  1357. resource 'CNTL' (129, purgeable, preload) {
  1358.     {2, 1, 22, 110},
  1359.     0,
  1360.     visible,
  1361.     42,
  1362.     129,
  1363.     1008,
  1364.     0,
  1365.     "Base:"
  1366. };
  1367.  
  1368. resource 'CNTL' (142, purgeable, preload) {
  1369.     {-1, 385, 236, 401},
  1370.     0,
  1371.     visible,
  1372.     0,
  1373.     0,
  1374.     scrollBarProc,
  1375.     0,
  1376.     ""
  1377. };
  1378.  
  1379. resource 'CNTL' (143, purgeable, preload) {
  1380.     {235, -1, 251, 386},
  1381.     0,
  1382.     visible,
  1383.     0,
  1384.     0,
  1385.     scrollBarProc,
  1386.     0,
  1387.     ""
  1388. };
  1389.  
  1390. resource 'CNTL' (144, purgeable, preload) {
  1391.     {0, 385, 236, 401},
  1392.     0,
  1393.     visible,
  1394.     8192,
  1395.     0,
  1396.     scrollBarProc,
  1397.     0,
  1398.     ""
  1399. };
  1400.  
  1401. resource 'CNTL' (145, purgeable, preload) {
  1402.     {0, 385, 236, 401},
  1403.     0,
  1404.     visible,
  1405.     8192,
  1406.     0,
  1407.     scrollBarProc,
  1408.     0,
  1409.     ""
  1410. };
  1411.  
  1412. resource 'STR#' (1000, purgeable) {    /* Hier menus */
  1413.     {
  1414.         /* [1] Open…, Normal */
  1415.             "Opens a previously saved memory document, reading it into "
  1416.             "the main memory of the simulated computer.",
  1417.         /* [2] Save As…, Normal */
  1418.             "Saves the contents of the main memory of the simulated comp"
  1419.             "uter.",
  1420.         /* [3] Open…, Normal */
  1421.             "Opens a previously saved state document, loading it into "
  1422.             "the registers and internal parts of the simulated microprocessor.",
  1423.         /* [4] Save As…, Normal */
  1424.             "Saves the contents of the internal state of the simulated microprocessor.",
  1425.         /* [5] Disasm from, Missing */
  1426.             "Scrolls the Disassembler window in order to bring in view "
  1427.             "the memory location pointed to by this register.",
  1428.         /* [6] Disasm from, Missing */
  1429.             "Scrolls the Dump window in order to bring in view "
  1430.             "the memory location pointed to by this register.",
  1431.     }
  1432. };
  1433.  
  1434. resource 'STR#' (1001, purgeable) {    /* popup menus */
  1435.     {
  1436.         /* [1] Decimal, Normal */
  1437.             "Displays the number you are editing in decimal form.",
  1438.         /* [2] Decimal, Checked */
  1439.             "Displays the number you are editing in decimal form. Checke"
  1440.             "d because it is the active choice.",
  1441.         /* [3] Hexadecimal, Normal */
  1442.             "Displays the number you are editing in hexadecimal form.",
  1443.         /* [4] Hexadecimal, Checked */
  1444.             "Displays the number you are editing in hexadecimal form. Ch"
  1445.             "ecked because it is the active choice.",
  1446.         /* [5] Octal, Normal */
  1447.             "Displays the number you are editing in octal form.",
  1448.         /* [6] Octal, Checked */
  1449.             "Displays the number you are editing in octal form. Checked "
  1450.             "because it is the active choice.",
  1451.         /* [7] Binary, Normal */
  1452.             "Displays the number you are editing in binary form.",
  1453.         /* [8] Binary, Checked */
  1454.             "Displays the number you are editing in binary form. Checked"
  1455.             " because it is the active choice.",
  1456.         /* [9] as text, Normal */
  1457.             "Displays the number you are editing in textual form (ASCII decoding).",
  1458.         /* [10] as text, Checked */
  1459.             "Displays the number you are editing in textual form (ASCII decoding). Checked"
  1460.             " because it is the active choice.",
  1461.         /* [11] Dec, Normal */
  1462.             "Displays the registers in decimal form.",
  1463.         /* [12] Dec, Checked */
  1464.             "Displays the registers in decimal form. Checked because it "
  1465.             "is the active choice.",
  1466.         /* [13] Hex, Normal */
  1467.             "Displays the registers in hexadecimal form.",
  1468.         /* [14] Hex, Checked */
  1469.             "Displays the registers in hexadecimal form. Checked because"
  1470.             " it is the active choice.",
  1471.         /* [15] Oct, Normal */
  1472.             "Displays the registers in octal form.",
  1473.         /* [16] Oct, Checked */
  1474.             "Displays the registers in octal form. Checked because it is"
  1475.             " the active choice.",
  1476.         /* [17] Bin, Normal */
  1477.             "Displays the registers in binary form.",
  1478.         /* [18] Bin, Checked */
  1479.             "Displays the registers in binary form. Checked because it i"
  1480.             "s the active choice.",
  1481.         /* [19] as text, Normal */
  1482.             "Displays the registers in textual form (ASCII decoding).",
  1483.         /* [20] as text, Checked */
  1484.             "Displays the registers in textual form (ASCII decoding). Checked"
  1485.             " because it is the active choice.",
  1486.         /* [21] Inactive, Normal */
  1487.             "The shifter will be inactive while executing the curren"
  1488.             "tly selected microinstruction.",
  1489.         /* [22] Inactive, Checked */
  1490.             "The shifter will be inactive while executing the curren"
  1491.             "tly selected microinstruction. Checked because it is the act"
  1492.             "ive choice.",
  1493.         /* [23] Left, Normal */
  1494.             "The shifter will shift left while executing the current"
  1495.             "ly selected microinstruction.",
  1496.         /* [24] Left, Checked */
  1497.             "The shifter will shift left while executing the current"
  1498.             "ly selected microinstruction. Checked because it is the acti"
  1499.             "ve choice.",
  1500.         /* [25] Right Logical, Normal */
  1501.             "The shifter will shift right without extending the sign bit"
  1502.             " while executing the currently selected microinstruction"
  1503.             ".",
  1504.         /* [26] Right Logical, Checked */
  1505.             "The shifter will shift right without extending the sign bit"
  1506.             " while executing the currently selected microinstruction"
  1507.             ". Checked because it is the active choice.",
  1508.         /* [27] Right Arithmetic, Normal */
  1509.             "The shifter will shift right extending the sign bit while "
  1510.             "executing the currently selected microinstruction.",
  1511.         /* [28] Right Arithmetic, Checked */
  1512.             "The shifter will shift right extending the sign bit while "
  1513.             "executing the currently selected microinstruction. Checke"
  1514.             "d because it is the active choice.",
  1515.         /* [29] never, Normal */
  1516.             "The microprogram will never branch from the currently selec"
  1517.             "ted microinstruction.",
  1518.         /* [30] never, Checked */
  1519.             "The microprogram will never branch from the currently selec"
  1520.             "ted microinstruction. Checked because it is the active choic"
  1521.             "e.",
  1522.         /* [31] if n, Normal */
  1523.             "The microprogram will branch from the currently selected mi"
  1524.             "croinstruction if the number in the Arithmetic Logical Unit "
  1525.             "is negative.",
  1526.         /* [32] if n, Checked */
  1527.             "The microprogram will branch from the currently selected mi"
  1528.             "croinstruction if the number in the Arithmetic Logical Unit "
  1529.             "is negative. Checked because it is the active choice.",
  1530.         /* [33] if z, Normal */
  1531.             "The microprogram will branch from the currently selected mi"
  1532.             "croinstruction if the number in the Arithmetic Logical Unit "
  1533.             "is zero.",
  1534.         /* [34] if z, Checked */
  1535.             "The microprogram will branch from the currently selected mi"
  1536.             "croinstruction if the number in the Arithmetic Logical Unit "
  1537.             "is zero. Checked because it is the active choice.",
  1538.         /* [35] always, Normal */
  1539.             "The microprogram will always branch from the currently sele"
  1540.             "cted microinstruction.",
  1541.         /* [36] always, Checked */
  1542.             "The microprogram will always branch from the currently sele"
  1543.             "cted microinstruction. Checked because it is the active choi"
  1544.             "ce.",
  1545.         /* [37] Inactive, Normal */
  1546.             "The Arithmetic Logical Unit will stay inactive while execu"
  1547.             "ting the currently selected microinstruction.",
  1548.         /* [38] Inactive, Checked */
  1549.             "The Arithmetic Logical Unit will stay inactive while execu"
  1550.             "ting the currently selected microinstruction. Checked bec"
  1551.             "ause it is the active choice.",
  1552.         /* [39] +, Normal */
  1553.             "The Arithmetic Logical Unit will add the input values "
  1554.             "while executing the currently selected microinstruction.",
  1555.         /* [40] +, Checked */
  1556.             "The Arithmetic Logical Unit will add the input values "
  1557.             "while executing the currently selected microinstruction. "
  1558.             "Checked because it is the active choice.",
  1559.         /* [41] &, Normal */
  1560.             "The Arithmetic Logical Unit will do a logical AND of the input values while ex"
  1561.             "ecuting the currently selected microinstruction.",
  1562.         /* [42] &, Checked */
  1563.             "The Arithmetic Logical Unit will do a logical AND of the input values while ex"
  1564.             "ecuting the currently selected microinstruction. Checked "
  1565.             "because it is the active choice.",
  1566.         /* [43] ~, Normal */
  1567.             "The Arithmetic Logical Unit will do a one’s complement on t"
  1568.             "he left input value while executing the currently select"
  1569.             "ed microinstruction.",
  1570.         /* [44] ~, Checked */
  1571.             "The Arithmetic Logical Unit will do a one’s complement on t"
  1572.             "he left input value while executing the currently select"
  1573.             "ed microinstruction. Checked because it is the active choice"
  1574.             ".",
  1575.     }
  1576. };
  1577.  
  1578. resource 'STR#' (1002, purgeable) {    /* popup menus, part 2 */
  1579.     {
  1580.         /* [1] PC, Normal */
  1581.             "The Program Counter value will be sent on this bus.",
  1582.         /* [2] PC, Checked */
  1583.             "The Program Counter value will be sent on this bus. Checked"
  1584.             " because it is the active choice.",
  1585.         /* [3] AC, Normal */
  1586.             "The Accumulator value will be sent on this bus.",
  1587.         /* [4] AC, Checked */
  1588.             "The Accumulator value will be sent on this bus. Checked bec"
  1589.             "ause it is the active choice.",
  1590.         /* [5] SP, Normal */
  1591.             "The Stack Pointer value will be sent on this bus.",
  1592.         /* [6] SP, Checked */
  1593.             "The Stack Pointer value will be sent on this bus. Checked b"
  1594.             "ecause it is the active choice.",
  1595.         /* [7] BP, Normal */
  1596.             "The Base Pointer value will be sent on this bus.",
  1597.         /* [8] BP, Checked */
  1598.             "The Base Pointer value will be sent on this bus. Checked be"
  1599.             "cause it is the active choice.",
  1600.         /* [9] IR, Normal */
  1601.             "The Instruction Register value will be sent on this bus.",
  1602.         /* [10] IR, Checked */
  1603.             "The Instruction Register value will be sent on this bus. Ch"
  1604.             "ecked because it is the active choice.",
  1605.         /* [11] A, Normal */
  1606.             "The Register A value will be sent on this bus.",
  1607.         /* [12] A, Checked */
  1608.             "The Register A value will be sent on this bus. Checked beca"
  1609.             "use it is the active choice.",
  1610.         /* [13] B, Normal */
  1611.             "The Register B value will be sent on this bus.",
  1612.         /* [14] B, Checked */
  1613.             "The Register B value will be sent on this bus. Checked beca"
  1614.             "use it is the active choice.",
  1615.         /* [15] C, Normal */
  1616.             "The Register C value will be sent on this bus.",
  1617.         /* [16] C, Checked */
  1618.             "The Register C value will be sent on this bus. Checked beca"
  1619.             "use it is the active choice.",
  1620.         /* [17] D, Normal */
  1621.             "The Register D value will be sent on this bus.",
  1622.         /* [18] D, Checked */
  1623.             "The Register D value will be sent on this bus. Checked beca"
  1624.             "use it is the active choice.",
  1625.         /* [19] E, Normal */
  1626.             "The Register E value will be sent on this bus.",
  1627.         /* [20] E, Checked */
  1628.             "The Register E value will be sent on this bus. Checked beca"
  1629.             "use it is the active choice.",
  1630.         /* [21] X12, Normal */
  1631.             "The Register X12 value will be sent on this bus.",
  1632.         /* [22] X12, Checked */
  1633.             "The Register X12 value will be sent on this bus. Checked be"
  1634.             "cause it is the active choice.",
  1635.         /* [23] X11, Normal */
  1636.             "The Register X11 value will be sent on this bus.",
  1637.         /* [24] X11, Checked */
  1638.             "The Register X11 value will be sent on this bus. Checked be"
  1639.             "cause it is the active choice.",
  1640.         /* [25] Lo8, Normal */
  1641.             "The Register Lo8 value will be sent on this bus.",
  1642.         /* [26] Lo8, Checked */
  1643.             "The Register Lo8 value will be sent on this bus. Checked be"
  1644.             "cause it is the active choice.",
  1645.         /* [27] Zero, Normal */
  1646.             "The Register Zero value (0) will be sent on this bus.",
  1647.         /* [28] Zero, Checked */
  1648.             "The Register Zero value (0) will be sent on this bus. Checked b"
  1649.             "ecause it is the active choice.",
  1650.         /* [29] One, Normal */
  1651.             "The Register One value (1) will be sent on this bus.",
  1652.         /* [30] One, Checked */
  1653.             "The Register One value (1) will be sent on this bus. Checked be"
  1654.             "cause it is the active choice.",
  1655.         /* [31] MinusOne, Normal */
  1656.             "The Register MinusOne value (-1) will be sent on this bus.",
  1657.         /* [32] MinusOne, Checked */
  1658.             "The Register MinusOne value (-1) will be sent on this bus. Check"
  1659.             "ed because it is the active choice.",
  1660.     }
  1661. };
  1662.  
  1663. resource 'STR#' (1003, purgeable) {    /* Balloon Help String 4 */
  1664.     {
  1665.         /* [1] Disabled, Normal */
  1666.             "The value on this bus will not be saved in any register.",
  1667.         /* [2] Disabled, Checked */
  1668.             "The value on this bus will not be saved in any register. Ch"
  1669.             "ecked because it is the active choice.",
  1670.         /* [3] PC, Normal */
  1671.             "The Program Counter will be loaded from this bus.",
  1672.         /* [4] PC, Checked */
  1673.             "The Program Counter will be loaded from this bus. Checked b"
  1674.             "ecause it is the active choice.",
  1675.         /* [5] AC, Normal */
  1676.             "The Accumulator will be loaded from this bus.",
  1677.         /* [6] AC, Checked */
  1678.             "The Accumulator will be loaded from this bus. Checked becau"
  1679.             "se it is the active choice.",
  1680.         /* [7] SP, Normal */
  1681.             "The Stack Pointer will be loaded from this bus.",
  1682.         /* [8] SP, Checked */
  1683.             "The Stack Pointer will be loaded from this bus. Checked bec"
  1684.             "ause it is the active choice.",
  1685.         /* [9] BP, Normal */
  1686.             "The Base Register will be loaded from this bus.",
  1687.         /* [10] BP, Checked */
  1688.             "The Base Register will be loaded from this bus. Checked bec"
  1689.             "ause it is the active choice.",
  1690.         /* [11] IR, Normal */
  1691.             "The Instruction Register will be loaded from this bus.",
  1692.         /* [12] IR, Checked */
  1693.             "The Instruction Register will be loaded from this bus. Chec"
  1694.             "ked because it is the active choice.",
  1695.         /* [13] A, Normal */
  1696.             "The Register A will be loaded from this bus.",
  1697.         /* [14] A, Checked */
  1698.             "The Register A will be loaded from this bus. Checked becaus"
  1699.             "e it is the active choice.",
  1700.         /* [15] B, Normal */
  1701.             "The Register B will be loaded from this bus.",
  1702.         /* [16] B, Checked */
  1703.             "The Register B will be loaded from this bus. Checked becaus"
  1704.             "e it is the active choice.",
  1705.         /* [17] C, Normal */
  1706.             "The Register C will be loaded from this bus.",
  1707.         /* [18] C, Checked */
  1708.             "The Register C will be loaded from this bus. Checked becaus"
  1709.             "e it is the active choice.",
  1710.         /* [19] D, Normal */
  1711.             "The Register D will be loaded from this bus.",
  1712.         /* [20] D, Checked */
  1713.             "The Register D will be loaded from this bus. Checked becaus"
  1714.             "e it is the active choice.",
  1715.         /* [21] E, Normal */
  1716.             "The Register E will be loaded from this bus.",
  1717.         /* [22] E, Checked */
  1718.             "The Register E will be loaded from this bus. Checked becaus"
  1719.             "e it is the active choice.",
  1720.         /* [23] No, Normal */
  1721.             "The processor will not interact with the main memory while"
  1722.             " executing the currently selected microinstruction.",
  1723.         /* [24] No, Checked */
  1724.             "The processor will not interact with the main memory while"
  1725.             " executing the currently selected microinstruction. Check"
  1726.             "ed because it is the active choice.",
  1727.         /* [25] Read, Normal */
  1728.             "The processor will ask to read from the main memory while "
  1729.             "executing the currently selected microinstruction. "
  1730.             "You need to request a read for two microinstructions "
  1731.             "to actually get data from memory.",
  1732.         /* [26] Read, Checked */
  1733.             "The processor will ask to read from the main memory while "
  1734.             "executing the currently selected microinstruction. "
  1735.             "You need to request a read for two microinstructions "
  1736.             "to actually get data from memory. "
  1737.             "Checked because it is the active choice.",
  1738.         /* [27] Write, Normal */
  1739.             "The processor will ask to write to the main memory while e"
  1740.             "xecuting the currently selected microinstruction. "
  1741.             "You need to request a write for two microinstructions "
  1742.             "to actually write data into memory.",
  1743.         /* [28] Write, Checked */
  1744.             "The processor will ask to write to the main memory while e"
  1745.             "xecuting the currently selected microinstruction. "
  1746.             "You need to request a write for two microinstructions "
  1747.             "to actually write data into memory. "
  1748.             "Checked because it is the active choice.",
  1749.     }
  1750. };
  1751.  
  1752. resource 'STR#' (1004, purgeable) {    /* Menu bar */
  1753.     {
  1754.         /* [1] Menu Title, Checked */
  1755.             "This menu is not available because it cannot be used with the dialog box on your screen.",
  1756.         /* [2] Menu Title, Other */
  1757.             "This command is not available because you have to respond "
  1758.             "to the dialog box.",
  1759.         /* [3] About µSimulator…, Normal */
  1760.             "Tells you something about this application and its author.",
  1761.         /* [4] Menu Title, Normal */
  1762.             "File menu\$0D\$0DUse this menu to perform operations with doc"
  1763.             "uments, and to set your preferences for this application.",
  1764.         /* [5] New, Normal */
  1765.             "Starts afresh with a new microprogram.",
  1766.         /* [6] Open…, Normal */
  1767.             "Opens a previously saved microprogram document.",
  1768.         /* [7] Close Control Store, Normal */
  1769.             "Closes the microprogram document you are working at.",
  1770.         /* [8] Close Control Store, Grayed */
  1771.             "Closes the microprogram document you are working at. Not av"
  1772.             "ailable because no document is open.",
  1773.         /* [9] Save Control Store, Normal */
  1774.             "Saves the microprogram document.",
  1775.         /* [10] Save Control Store, Grayed */
  1776.             "Saves the microprogram document. Not available because no d"
  1777.             "ocument is open, or the working document has been already sa"
  1778.             "ved.",
  1779.         /* [11] Save Control Store As…, Normal */
  1780.             "Saves the microprogram into a new document.",
  1781.         /* [12] Save Control Store As…, Grayed */
  1782.             "Saves the microprogram into a new document. Not available b"
  1783.             "ecause no document is open.",
  1784.         /* [13] Revert, Normal */
  1785.             "Reverts to the last saved version of this document.",
  1786.         /* [14] Revert to Saved, Grayed */
  1787.             "Reverts to the last saved version of this document. N"
  1788.             "ot available because you are not working on a previously saved "
  1789.             "document, or no document is open.",
  1790.         /* [15] Page Setup…, Grayed */
  1791.             "Displays a dialog box which allows you to set paper size, o"
  1792.             "rientation, and other printing options. Not available becaus"
  1793.             "e printing is not implemented.",
  1794.         /* [16] Print…, Grayed */
  1795.             "Not available because printing is not implemented.",
  1796.         /* [17] Preferences…, Normal */
  1797.             "Brings up a dialog that allows you to set your preferences "
  1798.             "for this application.",
  1799.         /* [18] Quit, Normal */
  1800.             "Quits this application.",
  1801.     }
  1802. };
  1803.  
  1804. resource 'STR#' (1005, purgeable) {    /* Menu bar, contd. */
  1805.     {
  1806.         /* [1] Menu Title, Normal */
  1807.             "Edit menu\$0D\$0DUse this menu to work with text and the micr"
  1808.             "oprogram.",
  1809.         /* [2] Undo, Normal */
  1810.             "Undoes the last operation.",
  1811.         /* [3] Undo, Grayed */
  1812.             "Undoes the last operation. Not available because not implemented.",
  1813.         /* [4] Cut, Normal */
  1814.             "Cuts the selection. The material you cut is removed and pla"
  1815.             "ced temporarily into a storage area called the Clipboard.",
  1816.         /* [5] Cut, Grayed */
  1817.             "Cuts the selection. The material you cut is removed and pla"
  1818.             "ced temporarily into a storage area called the Clipboard. No"
  1819.             "t available because nothing is selected.",
  1820.         /* [6] Copy, Normal */
  1821.             "Copies the selection. The material you copy is placed tempo"
  1822.             "rarily into a storage area called the Clipboard.",
  1823.         /* [7] Copy, Grayed */
  1824.             "Copies the selection. The material you copy is placed tempo"
  1825.             "rarily into a storage area called the Clipboard. Not availab"
  1826.             "le because nothing is selected.",
  1827.         /* [8] Paste, Normal */
  1828.             "Places the contents of the Clipboard at the location of the"
  1829.             " insertion point (or in place of the current selection).",
  1830.         /* [9] Paste, Grayed */
  1831.             "Places the contents of the Clipboard at the location of the"
  1832.             " insertion point (or in place of the current selection). Not"
  1833.             " available because there is nothing on the Clipboard, or bec"
  1834.             "ause the insertion point is not in a location where pasting "
  1835.             "is possible.",
  1836.         /* [10] Clear, Normal */
  1837.             "Removes the selection without storing it on the Clipboard.",
  1838.         /* [11] Clear, Grayed */
  1839.             "Removes the selection without storing it on the Clipboard. "
  1840.             "Not available because nothing is selected.",
  1841.         /* [12] Select All, Normal */
  1842.             "Selects all the text you are editing.",
  1843.         /* [13] Select All, Grayed */
  1844.             "Selects all the text you are editing. Not available because"
  1845.             " no text is being edited.",
  1846.         /* [14] Insert Line, Normal */
  1847.             "Inserts an empty microinstruction before the selected one.",
  1848.         /* [15] Insert Line, Grayed */
  1849.             "Inserts an empty microinstruction before the selected one. "
  1850.             "Not available because the microinstruction list is not activ"
  1851.             "e, or because you can achieve the same effect by choosing Cl"
  1852.             "ear from this menu.",
  1853.         /* [16] Delete Line, Normal */
  1854.             "Deletes the selected microinstruction and moves up the foll"
  1855.             "owing to fill the empty space.",
  1856.         /* [17] Delete Line, Grayed */
  1857.             "Deletes the selected microinstruction and moves up the foll"
  1858.             "owing to fill the empty space. Not available because the mic"
  1859.             "roinstruction list is not active, or because you can achieve"
  1860.             " the same effect by choosing Clear from this menu.",
  1861.     }
  1862. };
  1863.  
  1864. resource 'STR#' (1006, purgeable) {    /* menu bar, contd. */
  1865.     {
  1866.         /* [1] Menu Title, Normal */
  1867.             "Windows menu\$0D\$0DUse this menu to show or select windows.\$0D"
  1868.             "(nothing to do with Microsloth Windows)\$0D",
  1869.         /* [2] Animation, Normal */
  1870.             "Shows up the Animation window.",
  1871.         /* [3] Animation, Checked */
  1872.             "Brings to front the Animation window. Checked because the w"
  1873.             "indow is visible.",
  1874.         /* [4] Registers, Normal */
  1875.             "Shows up the Registers window.",
  1876.         /* [5] Registers, Checked */
  1877.             "Brings to front the Registers window. Checked because the w"
  1878.             "indow is visible.",
  1879.         /* [6] Input/Output, Normal */
  1880.             "Shows up the Input/Output window.",
  1881.         /* [7] Input/Output, Checked */
  1882.             "Brings to front the Input/Output window. Checked because th"
  1883.             "e window is visible.",
  1884.         /* [8] Microprogram, Normal */
  1885.             "Shows up the Microprogram document window.",
  1886.         /* [9] Microprogram, Grayed */
  1887.             "Shows up the Microprogram document window. Not available be"
  1888.             "cause no document is open.",
  1889.         /* [10] Microprogram, Checked */
  1890.             "Brings to front the Microprogram document window. Checked b"
  1891.             "ecause the window is visible.",
  1892.         /* [11] Disassembler, Normal */
  1893.             "Shows up the Disassembler window.",
  1894.         /* [12] Disassembler, Checked */
  1895.             "Brings to front the Disassembler window. Checked because the window"
  1896.             " is visible.",
  1897.         /* [13] Dump, Normal */
  1898.             "Shows up the Dump window.",
  1899.         /* [14] Dump, Checked */
  1900.             "Brings to front the Dump window. Checked because th"
  1901.             "e window is visible.",
  1902.     }
  1903. };
  1904.  
  1905. resource 'STR#' (1007, purgeable) {    /* menu bar, contd. */
  1906.     {
  1907.         /* [1] Menu Title, Normal */
  1908.             "Control menu\$0D\$0DUse this menu to control the processor ex"
  1909.             "ecution or to reset the memory and registers to their standard states.",
  1910.         /* [2] Go, Normal */
  1911.             "Starts the execution.",
  1912.         /* [3] Go, Grayed */
  1913.             "Starts the execution. Not available because the processor i"
  1914.             "s already executing instructions, or because no microprogram "
  1915.             "document is currently open.",
  1916.         /* [4] Stop, Normal */
  1917.             "Stops the execution of instructions.",
  1918.         /* [5] Stop, Grayed */
  1919.             "Stops the execution of instructions. Not available because "
  1920.             "the processor is not executing instructions, or because no "
  1921.             "microprogram document is currently open.",
  1922.         /* [6] Step, Grayed */
  1923.             "Not available because the processor is executing instructions.",
  1924.         /* [7] Step sub, Normal */
  1925.             "Carries on the execution of one clock subcycle. Each microinstruction executes in four "
  1926.             "clock subcycles.",
  1927.         /* [8] Step micro, Normal */
  1928.             "Carries on the execution of one microinstruction. Each conventional instruction "
  1929.             "is composed by four (or more) microinstructions, two for fetching it from the main "
  1930.             "memory, one for hardware decoding, and one (or more) for the actual execution.",
  1931.         /* [9] Step asm, Normal */
  1932.             "Carries on the execution of one conventional instruction.",
  1933.         /* [10] Reset Memory, Normal */
  1934.             "Resets memory to its initial state (for the most part it wi"
  1935.             "ll be zeroed out).",
  1936.         /* [11] Reset Memory, Grayed */
  1937.             "Resets memory to its initial state (for the most part it wi"
  1938.             "ll be zeroed out). Not available because resetting memory wh"
  1939.             "ile the processor is executing instructions is somewhat dang"
  1940.             "erous.",
  1941.         /* [12] Reset Registers, Normal */
  1942.             "Resets the Program Counter and the Stack Pointer to their "
  1943.             "standard initial values. You can modify the standard values in "
  1944.             "the preferences dialog.",
  1945.         /* [13] Reset Registers, Grayed */
  1946.             "Resets the Program Counter and the Stack Pointer to their "
  1947.             "standard initial values. Not available because modifying the r"
  1948.             "egisters while the processor is executing instructions is so"
  1949.             "mewhat dangerous.",
  1950.         /* [14] Disasm, Grayed */
  1951.             "Scrolls the Disassembler window in order to bring in view a certain "
  1952.             "part of memory. Not available because the window is not visible.",
  1953.         /* [15] Dump, Grayed */
  1954.             "Scrolls the Dump window in order to bring in view a certain "
  1955.             "part of memory. Not available because the window is not visible.",
  1956.         /* [16] Select MPC, Normal */
  1957.             "Selects the microprogram instruction pointed to by the MPC.",
  1958.         /* [17] Select MPC, Grayed */
  1959.             "Selects the microprogram instruction pointed to by the MPC. "
  1960.             "Not available because no microprogram document is currently open.",
  1961.     }
  1962. };
  1963.  
  1964. resource 'STR#' (1008, purgeable) {    /* menu bar, contd. */
  1965.     {
  1966.         /* [1] Menu Title, Normal */
  1967.             "Assembler menu\$0D\$0DUse this menu to assemble a text file t"
  1968.             "o the main memory.",
  1969.         /* [2] Assemble file…, Normal */
  1970.             "Lets you choose a text file to assemble in the main memory.",
  1971.         /* [3] Preferences…, Normal */
  1972.             "Brings up a dialog which allows you to enter a main memo"
  1973.             "ry location. The assembler will output conventional instructions from "
  1974.             "that memory location.",
  1975.     }
  1976. };
  1977.  
  1978. resource 'STR#' (1009, purgeable) {    /* dialogs */
  1979.     {
  1980.         /* [1] OK, Normal */
  1981.             "To accept assembling from this memory location, click here.",
  1982.         /* [2] Cancel, Normal */
  1983.             "To cancel changes you have made, click here.",
  1984.         /* [3] DITL 134, Normal */
  1985.             "The assembler will output conventional instructions starting from the "
  1986.             "main memory location entered here.",
  1987.         /* [4] OK, Normal */
  1988.             "To accept changes you have made to this value, click here.",
  1989.         /* [5] Cancel, Normal */
  1990.             "To cancel changes you have made to this value, click here.",
  1991.         /* [6] DITL 256, Normal */
  1992.             "Here you can modify the value.",
  1993.         /* [7] Base:, Normal */
  1994.             "Use this pop-up menu to display the number in different forms.",
  1995.         /* [8] OK, Normal */
  1996.             "To accept changes you have made to the current preferences,"
  1997.             " click here.",
  1998.         /* [9] Cancel, Normal */
  1999.             "To cancel changes you have made to the current preferences,"
  2000.             " click here.",
  2001.         /* [10] Remember Window Positions , Normal */
  2002.             "To remember window positions between sessions, click here.",
  2003.         /* [11] Remember Window Positions , Checked */
  2004.             "To leave windows in their standard position between sessions"
  2005.             ", click here.",
  2006.         /* [12] Continuous Dump scrolling, Normal */
  2007.             "To watch the memory contents while moving the scroll box of the D"
  2008.             "ump window, click here.",
  2009.         /* [13] Continuous Dump scrolling, Checked */
  2010.             "To scroll the Dump window in the usual way, click here.",
  2011.         /* [14] detect ∞ loops, Normal */
  2012.             "To detect ∞ loops in the microprogram, click here. The processor is "
  2013.             "expected to execute periodically the first few instructions in the "
  2014.             "microprogram in order to fetch instructions from memory.",
  2015.         /* [15] detect ∞ loops, Checked */
  2016.             "To execute ∞ loops in the microprogram, click here.",
  2017.         /* [16] text, PC value */
  2018.             "Enter here the value you want to store into the "
  2019.             "Program Counter when this application starts up, and when you "
  2020.             "choose Reset Registers from the Control Menu.",
  2021.         /* [17] text, SP value */
  2022.             "Enter here the value you want to store into the "
  2023.             "Stack Pointer when this application starts up, and when you "
  2024.             "choose Reset Registers from the Control Menu. This is usually "
  2025.             "called the stack base.",
  2026.         /* [18] text, Stack size */
  2027.             "Enter here the stack size of the simulated computer. This sets up "
  2028.             "a limit for it; when the Stack Pointer goes beyond this limit "
  2029.             "a stack overflow error occurs. The limit is obviously (stack base - "
  2030.             "stack size), because the stack grows downwards in memory.",
  2031.     }
  2032. };
  2033.  
  2034. resource 'STR#' (1010, purgeable) {    /* Animation Window Balloons */
  2035.     {
  2036.         /* [1] A Latch */
  2037.             "To modify the value stored in the A latch, click here.\nThe register addressed by the "
  2038.             "“A” field in the Micro Instruction Register feeds the A bus, which in turn feeds "
  2039.             "the A latch.",
  2040.         /* [2] B Latch */
  2041.             "To modify the value stored in the B latch, click here.\nThe register addressed by the "
  2042.             "“B” field in the Micro Instruction Register feeds the B bus, which in turn feeds "
  2043.             "the B latch.",
  2044.         /* [3] MAR */
  2045.             "To modify the value stored in the Memory Address Register, click here.\nWhen this "
  2046.             "register is active, the B latch feeds it. When the processor needs to read from or write to "
  2047.             "a main memory address, it puts here the memory address.",
  2048.         /* [4] MBR */
  2049.             "To modify the value stored in the Memory Buffer Register, click here.\nWhen this "
  2050.             "register is active, the Shifter feeds it. Here the processor keeps values read from and "
  2051.             "to be written to the main memory.",
  2052.         /* [5] AMUX */
  2053.             "To modify the value stored in the A multiplexer, click here.\nThis multiplexer controls the "
  2054.             "left input to the Arithmetic Logical Unit. It chooses between the A latch and the Memory "
  2055.             "Buffer Register.",
  2056.         /* [6] Shifter */
  2057.             "To modify the value stored in the Shifter, click here.\nThe Arithmetic Logical Unit feeds the "
  2058.             "shifter with its result. If the C bus is not disabled, its contents go to the Registers scratchpad.",
  2059.         /* [7] Incrementer */
  2060.             "To modify the value stored in the Incrementer, click here.\nThe incrementer provides the standard "
  2061.             "advancing of the Micro Program Counter.",
  2062.         /* [8] MMUX */
  2063.             "To modify the value stored in the M multiplexer, click here.\nThis multiplexer controls the input to "
  2064.             "the Micro Program Counter. A jump in the microprogram results in feeding the Micro Program Counter "
  2065.             "with the “Addr” field of the Micro Instruction Register.",
  2066.         /* [9] MPC */
  2067.             "To modify the value stored in the Micro Program Counter, click here.\nThis register points to the "
  2068.             "microinstruction currently executing.",
  2069.         /* [10] ALU */
  2070.             "To modify the value stored in the Arithmetic Logical Unit, click here.\nThis unit performs the basic "
  2071.             "calculations (add, logical “and” and one’s complement) and sets the Negative and Zero flags, "
  2072.             "according to its contents.",
  2073.         /* [11] MSL */
  2074.             "The Micro Sequencing Logic decides whether to take a jump (in the microprogram) or not. The decision "
  2075.             "is based upon the Negative and Zero flags, and the “Cond” field of the Micro Instruction Register.",
  2076.         /* [12] MIR */
  2077.             "The Micro Instruction Register contains the last microinstruction extracted from "
  2078.             "the Control Store. Its fields control many parts of the processor.",
  2079.         /* [13] Registers */
  2080.             "To show the Register window, click here.\nThe registers are a scratchpad memory; the processor can "
  2081.             "access their data very quickly. While the processor is running, the (writable) registers can be "
  2082.             "set via the C bus, which may carry the shifter output.",
  2083.         /* [14] Control Store */
  2084.             "To show the Microprogram window, click here; you cannot show the window if no document "
  2085.             "is open.\nThe Control Store contains the entire "
  2086.             "microprogram, which endlessly fetches, decodes and executes "
  2087.             "instructions from the main memory.",
  2088.         /* [15] Map */
  2089.             "This is the hardware decoding unit. When activated, this unit decodes the "
  2090.             "conventional instruction in the Instruction Register, setting the "
  2091.             "Micro Program Counter; it writes to the X12, X11, Lo8 registers simultaneously."
  2092.     }
  2093. };
  2094.  
  2095. resource 'STR#' (1011, purgeable) {    /* Registers Window Balloons */
  2096.     {
  2097.         /* [1] Base pop-up */
  2098.             "Use this pop-up menu to display the registers’ contents in different forms.",
  2099.         /* [2] PC */
  2100.             "To modify the value stored in the Program Counter, click here.\nThis register is used to "
  2101.             "indicate the conventional instruction which must be executed. Conventional instructions are "
  2102.             "shown in the Disassembler window.",
  2103.         /* [3] AC */
  2104.             "To modify the value stored in the Accumulator, click here.\nIn the sample "
  2105.             "supplied with this application, this register is heavily used. It may not be so with other "
  2106.             "macroarchitectures.",
  2107.         /* [4] SP */
  2108.             "To modify the value stored in the Stack Pointer, click here.\nThis register normally points to a "
  2109.             "memory structure called a stack. The stack is simply a Last In, First Out queue "
  2110.             "(the last element inserted is the first removed).",
  2111.         /* [5] BP */
  2112.             "To modify the value stored in the Base Pointer, click here.\nThis register is used to make "
  2113.             "the management of local variables and actual parameters of functions easier.",
  2114.         /* [6] IR */
  2115.             "To modify the value stored in the Instruction Register, click here.\nThis register is "
  2116.             "used to hold the conventional instruction fetched from the main memory.",
  2117.         /* [7] A */
  2118.             "To modify the value stored in the A register, click here.\nThis is a scratch register, "
  2119.             "the only one used in the sample supplied with this application.",
  2120.         /* [8] B */
  2121.             "To modify the value stored in the B register, click here.\nThis is a scratch register.",
  2122.         /* [9] C */
  2123.             "To modify the value stored in the C register, click here.\nThis is a scratch register.",
  2124.         /* [10] D */
  2125.             "To modify the value stored in the D register, click here.\nThis is a scratch register.",
  2126.         /* [11] E */
  2127.             "To modify the value stored in the E register, click here.\nThis is a scratch register.",
  2128.         /* [12] X12 */
  2129.             "To modify the value stored in the X12 register, click here.\nThis register is set by the "
  2130.             "hardware decoding unit to the lower 12 bits of the Instruction Register, with sign extension.",
  2131.         /* [13] X11 */
  2132.             "To modify the value stored in the X11 register, click here.\nThis register is set by the "
  2133.             "hardware decoding unit to the lower 11 bits of the Instruction Register, with sign extension.",
  2134.         /* [14] Lo8 */
  2135.             "To modify the value stored in the Lo8 register, click here.\nThis register is set by the "
  2136.             "hardware decoding unit to the lower 8 bits of the Instruction Register."
  2137.     }
  2138. };
  2139.  
  2140. resource 'STR#' (1012, purgeable) {    /* Microprogram Window Balloons */
  2141.     {
  2142.         /* [1] A bus */
  2143.             "Use this pop-up menu to send on the A bus (left input to the Arithmetic "
  2144.             "Logical Unit) the value stored in a register.",
  2145.         /* [2] B bus */
  2146.             "Use this pop-up menu to send on the B bus (right input to the Arithmetic "
  2147.             "Logical Unit) the value stored in a register.",
  2148.         /* [3] C bus */
  2149.             "Use this pop-up menu to overwrite a register with the shifter output.",
  2150.         /* [4] MAR */
  2151.             "To put the B latch contents into the Memory Address Register, check this button.",
  2152.         /* [5] MBR */
  2153.             "To put the shifter output into the Memory Buffer Register, check this button.",
  2154.         /* [6] Bus request */
  2155.             "Use this pop-up menu to request memory reads or writes.",
  2156.         /* [7] Shifter */
  2157.             "Use this pop-up menu to control the shifter behavior.",
  2158.         /* [8] Branch */
  2159.             "Use this pop-up menu to choose on which condition the selected microinstruction should take a jump.",
  2160.         /* [9] ALU */
  2161.             "Use this pop-up menu to control the Arithmetic Logical Unit behavior.",
  2162.         /* [10] A bus */
  2163.             "To send the value arriving from the A latch to the Arithmetic Logical Unit, click here.",
  2164.         /* [11] MBR */
  2165.             "To send the value arriving from the Memory Buffer Register to the Arithmetic Logical Unit, click here.",
  2166.         /* [12] hardware decoding */
  2167.             "To activate the hardware decoding unit (labeled MAP in the Animation window), check this button.",
  2168.         /* [13] to… */
  2169.             "Enter here the destination microinstruction line number. "
  2170.             "To enter the line number automatically, "
  2171.             "Command-click on the destination "
  2172.             "microinstruction (in the descriptions list).",
  2173.         /* [14] comment */
  2174.             "Enter here a description of the current microinstruction. The description will appear in the "
  2175.             "adjacent list.",
  2176.         /* [15] comment list */
  2177.             "This is a list of the descriptions entered for each microinstruction. "
  2178.             "To select a branch destination line, select a line "
  2179.             "containing a branch and double-click on it.",
  2180.         /* [16] conventional instruction list */
  2181.             "This is a list of the conventional instructions of this processor. "
  2182.             "To select the starting line of a conventional instruction in the descriptions list, "
  2183.             "click on it. To change the starting line, click and "
  2184.             "drag to the description list."
  2185.     }
  2186. };
  2187.  
  2188. resource 'STR#' (1013, purgeable) {    /* Dump, Disasm, IO Window Balloons */
  2189.     {
  2190.         /* [1] Dump area */
  2191.             "This window represents the main memory contents. To modify a memory "
  2192.             "location, click on its value. To dump or disassemble starting from an address in a "
  2193.             "location, click on it holding down respectively the command or option key.",
  2194.         /* [2] Disasm area */
  2195.             "This window represents the disassembled main memory contents.",
  2196.         /* [3] IO area */
  2197.             "This window is the interface with the simulated computer."
  2198.     }
  2199. };
  2200.  
  2201.